// 文件名: src/api/modules/resource.ts
// 块功能: 动态资源管理 (Resources) 模块 API
// 描述: 包含轮播图、可编辑文本等动态内容的管理接口。

import service from '../request'
import type {
  AdminBannerItem,
  DeleteBannersPayload,
  AdminTextItem,
  TextContent,
  UpdateTextContentPayload,
} from '../types/resource'

/**
 * @功能: 获取所有轮播图列表
 */
export const getBannersApi = (): Promise<AdminBannerItem[]> => {
  return service.get('/api/admin/resources/banners')
}

/**
 * @功能: 批量删除轮播图
 * @param data 包含图片路径数组的对象
 */
export const deleteBannersApi = (data: DeleteBannersPayload): Promise<void> => {
  // DELETE 请求通常通过 URL 传递参数，但如果 body 中有数据，需要这样写
  return service.delete('/api/admin/resources/banners', { data })
}

/**
 * @功能: 获取可编辑文本列表
 */
export const getTextContentListApi = (): Promise<AdminTextItem[]> => {
  return service.get('/api/admin/resources/text-contents')
}

/**
 * @功能: 获取指定类型的文本内容
 * @param type 文本类型标识
 */
export const getSingleTextContentApi = (type: string): Promise<TextContent> => {
  return service.get(`/api/admin/resources/text-contents/${type}`)
}

/**
 * @功能: 更新指定类型的文本内容
 * @param type 文本类型标识
 * @param data 新的文本内容
 */
export const updateSingleTextContentApi = (
  type: string,
  data: UpdateTextContentPayload,
): Promise<TextContent> => {
  return service.put(`/api/admin/resources/text-contents/${type}`, data)
}
